草庐IT

c++ - gcc 和 libstdc++ 向前兼容

全部标签

c++ - 编译器之间的 qt dll 兼容性

Qt库声明了跨主要版本的二进制兼容性。但是不同编译器之间的兼容性呢?例如,我有一个应用程序和2个使用Qt(动态链接)的dll。但其中一个是用MSVC构建的,另一个是用MinGW构建的。因此它们链接到不同版本的Qt库(相同版本)。问题是:这些dll是否可以使用一个共享的Qtdll协同工作?如果不是,那么考虑到更改编译器不是一个选项,有哪些可行的解决方法?我查看了带有dependencywalker的Qtdll,我发现有几十个导出的函数具有编译器特定的名称重整。所以看起来不可能让它们一起工作。 最佳答案 C++没有标准的ABI。这意味着

我可以使用自动要求管理员权限的 GCC 编译 C 程序吗?

我想编译一个程序,在先前执行的程序退出后简单地终止任务。如果没有管理员权限,这是行不通的。我知道您可以从可执行文件属性的兼容性选项卡中选择“以管理员身份运行程序”,但如果可能的话,我想在分发程序时避免这样做。我在Windows8.1上使用GCC4.8.1进行编译。编辑:大约5年后我可能会选择system("tskill")在这种情况下,因为它不需要用户进程的管理员权限。或者使用runas/vbscript进行一些破解。 最佳答案 看起来这可能已经被弄清楚了——你可能想看看这里是否有帮助:Embedmanifestfiletorequ

c++ - 使用 gcc c++ 获取 Windows 版本

我确定这个问题有点奇怪,但我使用的是Code::Blocks和GCC。要在我的项目中使用某些特定功能,我需要确定用户计算机上安装的是哪个版本的Windows。对于VS2013/15,我们可以使用VersionHelpers.h和IsWindowsXXXOrGreater()。但是GCCC++呢? 最佳答案 您仍然使用VersionHelpers.h,即使使用GCC或Clang或其他编译器。这些函数与VisualC++无关。它们是WindowsSDK的一部分,所有Windows应用程序都必须使用它。您可以downloadtheWind

windows - 避免让 MSI 进入兼容模式 "Previous version of Windows"

我有一个32位应用程序的安装程序包(使用MakeMsi构建,最初是为WindowsXP而简单维护的),它无法在现代(64位)Windows系统上注册COM服务器(7、8,10).这是我在尝试正常安装MSI时看到的:ApplicationErrorExceptionEOleSysErrorinmodulexyzat000F0B01.ErroraccessingtheOLEregistry.如果我将MSI置于兼容模式以前版本的Windows,COM服务器会成功注册。由于“它正在工作”不知何故,到目前为止我没有投入太多时间来探索原因。但最后,我厌倦了一次又一次地记住我们的客户(有时也是我)这

python - 如何在 Python 3 中使用与 Linux、Mac 和 Windows 交叉兼容的文件路径打开和写入文件?

这个问题在这里已经有了答案:WhydoIgetaSyntaxErrorforaUnicodeescapeinmyfilepath?[duplicate](5个答案)关闭4年前。如何在Python3中使用与Linux、Mac和Windows交叉兼容的文件路径打开和写入文件?我创建了一个函数,用于打开包含以下行“HelloWorld”的input_file。这些函数然后打开一个output_file并将该行写入output_file。输出文件现在应该有一行“HelloWorld”。但是,我在尝试使用绝对文件路径时遇到UnicodeError。SyntaxError:(unicodeerro

windows - 如何在具有跨平台兼容性的 Git 提交中强制执行一致的行结尾

在与使用不同操作系统的人一起工作时,我遇到了由于行尾导致的merge冲突问题。我在Windows上工作,而我的同事在Mac上工作。当他推送他的更改时,有时他没有处理的文件会在diff中显示为已更改,因为行结尾现在显示^M在每个文件上。这导致了merge冲突。我在Git文档中阅读了以下内容:Gitcanhandlethisbyauto-convertingCRLFlineendingsintoLFwhenyouaddafiletotheindex,andviceversawhenitchecksoutcodeontoyourfilesystem.Youcanturnonthisfunct

c - 有什么方法可以使用 getaddrinfo() 和 freeaddrinfo() 并且仍然是与旧版 Windows 兼容的程序?

在Winsock2库中,getaddrinfo()和freeaddrinfo()仅在WindowsXP及更高版本中添加。我知道如何在遗留系统中替换它们,但根据Windows版本有条件地使用将无济于事。应用程序不会在9x中启动,并显示一条消息说它链接到WS2_32.dll中丢失的导出。我正在使用MinGW编译和链接代码,并希望继续使用它。也许自己写那些函数?非常感谢你所做的一切。 最佳答案 您可以使用LoadLibrary和GetProcAddress来(尝试)获取getaddrinfo和freeaddrinfo的地址,然后通过指针调

windows - 如何在 Windows 上构建 GCC 4.7?

如何在Windows上构建GCC4.7? 最佳答案 您找不到有关如何执行此操作的说明,因为您不能在Windows中本地使用gcc。您的选择是通过Cygwin使用gcc[installationinstructions]或安装MinGW端口[installationinstructions].您还可以在InstallingGCC:Binaries上找到这些项目的链接。页面。 关于windows-如何在Windows上构建GCC4.7?,我们在StackOverflow上找到一个类似的问题:

eclipse - Windows 8 与开发工具的兼容性。

我的老板刚刚问我有关Windows8的问题。他想给我买一台新笔记本电脑。并且仍然对操作系统感到困惑。VS2010可以安装在windows8上吗?因为VS2012可以安装在windows7中。像eclipsejavaandroid怎么样?它们可以在Windows8中运行吗? 最佳答案 在Windows8中更推荐使用visualstudio2012,以便安装某些sdk,例如windowsphone8sdk..所以它在windows8中应该工作得更加流畅eclipse和java也可以正常工作...大多数适用于win7的应用程序都可以毫无问

c++ - 开发-C++/TDM-GCC : Linkage Problems with Boost Libaries Downloaded from boost. 组织

我正在尝试在Dev-C++(tdm-gcc4.7.1)中使用regex。我已经从boost.org下载了Boost库并解压到C:\ProgramFiles(x86)\Dev-Cpp\boost并在Dev-C++中添加C:\ProgramFiles(x86)\Dev-Cpp\boost\libs去图书馆。包含路径(C/C++):C:\ProgramFiles(x86)\Dev-Cpp\boostmain.cpp:#includeusingnamespaceboost;intmain(){strings("sometxtPING:665454some_text");smatchmt;reg